/**
 * @author liangxi
 * @since 2023/12/21
 */

#ifndef DESIGNPATTERN_RUBBERDUCK_H
#define DESIGNPATTERN_RUBBERDUCK_H

#include <iostream>
#include "../Duck.h"
#include "../../Behavior/Quack/impl/Squeak.h"
#include "../../Behavior/Fly/impl/FlyNoWay.h"

namespace Strategy {

    class RubberDuck : public Duck {
    public:
        RubberDuck() {
            setFlyBehavior(std::make_shared<FlyNoWay>());
            setQuackBehavior(std::make_shared<Squeak>());
        }

        void display() override {
            std::cout << "I am a rubber duckie" << std::endl;

        }
    };

} // Strategy

#endif //DESIGNPATTERN_RUBBERDUCK_H
